Source code is developed by programmers according to their specific annotations and naming conventions, and generally stored on servers for sharing. Each programmer can choose a preferred way of commenting source code and selecting file names, variables, and other code content. The source code naming conventions selected by one programmer may not have the same meaning with another programmer and thus, particular pieces of source code may not be provided in search results for the programmer who does not correctly predict the meaning of the conventions used by another programmer.
Searching for relevant source code is a common task among programmers, with the ultimate goal of finding and reusing code drafted by other programmers, or obtaining ideas for implementation of their own software programs. Programmers can access search engines and enter keywords that they believe may be found in the stored code. For example, a programmer can enter search queries in the form of keywords, such as “Best way to do combine two arrays in JAVA?” or “Can I do a merge with/without arrays of the same size?” or “How do I . . . ?” or “extract alias from email address in JAVA” or “extract, alias, and email,” just to name a few examples. The search engine can take the entered search query, compare the keywords in the query to keywords in stored source code, and provide search results if the comparison results in a match of keywords to source code.